package hu.mapro.flang.gwt.shared.domain;



public class PlanOperations {

//	public static void sleep(Schedule s, double sleepDays) {
//		s.setTime(new Date((long) (new Date().getTime() + DateUtils.MILLIS_PER_DAY*sleepDays)));
//	}
//	
//	public static final Comparator<Schedule> scheduleComparator = new Comparator<Schedule>() {
//
//		@Override
//		public int compare(Schedule o1, Schedule o2) {
//			return o1.getTime().compareTo(o2.getTime());
//		}
//		
//	};
//	
//	public static int getQueueSize(Plan plan) {
//		int size = 0;
//		
//		for (List<Long> ch : plan.getQueued()) {
//			size += ch.size();
//		}
//		
//		return size;
//	}
//
//	public int getScheduleSize(Plan plan) {
//		return plan.getScheduled().size();
//	}
	
//	public void schedule(Plan plan, Long exerciseId, Double sleepDays) {
//		Schedule sch = plan.getScheduleMap().get(exerciseId);
//		
//		if (sch!=null) {
//			scheduled.remove(sch);
//			sch.sleep(sleepDays);
//		} else {
//			sch = new Schedule(exerciseId, sleepDays);
//			scheduleMap.put(exerciseId, sch);
//		}
//		
//		scheduled.add(sch);
//	}
//	
//	public NextExercise getNextExercise() {
//		Schedule sch = scheduled.peek();
//		
//		if (sch!=null && sch.getTime().before(new Date())) {
//			scheduled.remove();
//			scheduleMap.remove(sch.getExerciseId());
//			
//			return new NextExercise(
//					Source.SCHEDULE,
//					sch.getExerciseId()
//			);
//		}
//
//		for (Iterator<List<Long>> iterator = queued.iterator(); iterator.hasNext();) {
//			List<Long> chapter = (List<Long>) iterator.next();
//			
//			if (chapter.isEmpty()) {
//				iterator.remove();
//				continue;
//			}
//
//			return new NextExercise(
//					Source.QUEUE,
//					chapter.remove(0)
//			);
//		}
//		
//		return null;
//	}
//
//	public void queueBook(Collection<Exercise> es) {
//		int lastChapter = -1;
//		List<Long> chapter = null;
//		
//		for (Exercise e : es) {
//			if (lastChapter!=e.getChapter()) {
//				chapter = Lists.newArrayList();
//				queued.add(chapter);
//				lastChapter = e.getChapter();
//			}
//			
//			chapter.add(e.getId());
//		}
//		
//		queued.add(new ArrayList<Long>());
//		
//	}
//	
//	public void toChapterEnd(long exerciseId) {
//		queued.get(0).add(exerciseId);
//	}
//	
//	public void toBookEnd(long exerciseId) {
//		queued.get(queued.size()-1).add(exerciseId);
//	}
//
//	public void skipChapter() {
//		queued.remove(0);
//	}
//
//	public void clearQueue() {
//		queued.clear();
//	}
//
//	public void clearSchedule() {
//		scheduled.clear();
//		scheduleMap.clear();
//	}
	
	
}
